<?php

class ProductosController extends AppController {

    public $name = 'Productos';

    public function beforeFilter() {
        parent::beforeFilter();
        if ((!$this->Session->check('user')) || ($_SESSION['user'][0]['Tipo'] == 'cliente')) {
            $this->Auth->allow('detallecarrito','productos_categorias', 'eliminarproductocarro', 'cantidadcarrito', 'carrito', 'borrarcarro', 'listaproductos', 'productobusq', 'autoComplete');
        } elseif (($this->Session->check('user')) && ($_SESSION['user'][0]['Tipo'] == 'admin')) {
            $this->Auth->allow();
        }
    }
public function detallecarrito() {
    
}
    public function productos_categorias($id = null) {
        sleep(1);
        $productos_categorias = $this->Producto->find('all', array(
            'conditions' => array('Producto.categoria_id' => $id)
        ));
        $this->set('pro_cat', $productos_categorias);
        $this->layout = 'ajax';
    }

    public function eliminarproductocarro($id = null) {
        if (($this->Session->check('carrito')) && ($id)) {
            $arreglo = $_SESSION['carrito']; //PASO ACTUAL CARRITO A UN ARREGLO

            $encontro = false;
            $numero = 0;
            for ($i = 0; $i < count($arreglo); $i++) {
                if (isset($arreglo[$i]['Id'])) { //BUSCO SI EL PRODUCTO ENVIADO EXISTE EN EL CARRITO
                    if ($arreglo[$i]['Id'] == $id) {
                        $encontro = true;
                        $numero = $i;
                    }
                }
            }
            if ($encontro == true) {//SI EL PRODUCTO ENVIADO EXISTE 
                unset($arreglo[$numero]);
                $arreglo = array_values($arreglo);
                $_SESSION['carrito'] = $arreglo;
                $this->set('carritoop', $arreglo);
                $this->layout = 'ajax';
            }
        }
    }

    public function cantidadcarrito($id = null, $cant = null) {//CAMBIAR LA CANTIDAD DEL CARRO CON EL INPUT
        if (($this->Session->check('carrito')) && ($id)) {
            $arreglo = $_SESSION['carrito']; //PASO ACTUAL CARRITO A UN ARREGLO
            $encontro = false;
            $numero = 0;
            for ($i = 0; $i < count($arreglo); $i++) {
                if (isset($arreglo[$i]['Id'])) { //BUSCO SI EL PRODUCTO ENVIADO EXISTE EN EL CARRITO
                    if ($arreglo[$i]['Id'] == $id) {
                        $encontro = true;
                        $numero = $i;
                    }
                }
            }
            if ($encontro == true) {//SI EL PRODUCTO ENVIADO EXISTE 
                $arreglo[$numero]['Cantidad'] = $cant;
                //$this->Session->write('carrito', array($arreglo));
                if (($arreglo[$numero]['Cantidad']) > 0) {
                    $_SESSION['carrito'] = $arreglo;
                }
            }
        }
    }

    public function carrito($id = null) {

        if ($id != null) {
            $this->Producto->id = $id;
            if ($this->Session->check('carrito')) { //SI EXISTE LA SESSION CARRITO
                $arreglo = $_SESSION['carrito']; //PASO ACTUAL CARRITO A UN ARREGLO
                $encontro = false;
                $numero = 0;
                for ($i = 0; $i < count($arreglo); $i++) {
                    if (isset($arreglo[$i]['Id'])) { //BUSCO SI EL PRODUCTO ENVIADO EXISTE EN EL CARRITO
                        if ($arreglo[$i]['Id'] == $id) {
                            $encontro = true;
                            $numero = $i;
                        }
                    }
                }
                if ($encontro == true) {//SI EL PRODUCTO ENVIADO EXISTE SE AUMENTA +1 CANT
                    $arreglo[$numero]['Cantidad'] = $arreglo[$numero]['Cantidad'] + 1;
                    //$this->Session->write('carrito', array($arreglo));
                    $_SESSION['carrito'] = $arreglo;
                } else { //SI EL PRODUCTO ENVIADO NO EXISTE EN EL CARRITO
                    $idp = $this->Producto->field('id');
                    $nombre = $this->Producto->field('producto');
                    $precio = $this->Producto->field('precioVenta');

                    $datosNuevos = array('Id' => $idp,
                        'Producto' => $nombre,
                        'Precio' => $precio,
                        'Cantidad' => 1);
                    array_push($arreglo, $datosNuevos); //SE  CONVINAN LOS PRODUCTOS ANTIGUOS CON LOS DATOS NUEVOS
                    $_SESSION['carrito'] = $arreglo;
                }
            } else {//SI NO EXISTE LA SESSION CARRITO 
                $idp = $this->Producto->field('id');
                $nombre = $this->Producto->field('producto');
                $precio = $this->Producto->field('precioVenta');

                $arreglo = array('Id' => $idp,
                    'Producto' => $nombre,
                    'Precio' => $precio,
                    'Cantidad' => 1);
                $this->Session->write('carrito', array($arreglo));
                //$_SESSION['carrito'][0]=$arreglo;
            }
        }
        $arreglo = $this->Session->read('carrito');
        $this->set('carritoop', $arreglo);
        $this->layout = 'ajax';
    }

    public function borrarcarro() {
        $this->Session->delete('carrito');
    }

    public function autoComplete() {
        $this->set('productos', $this->Producto->find('all', array('conditions' => array(
                        'Producto.producto LIKE ' => '%' . $this->request->query['term'] . '%'
                    ),
                    'fields' => array('id', 'producto')
                        )
        ));
        $this->layout = 'ajax';
    }

    public function productobusq($id = null) {
        $this->Producto->id = $id;
        $this->Producto->recursive = 1;
        $this->set('producto', $this->Producto->read());
        $this->layout = 'ajax';
    }

    function listaproductos() {
        sleep(1);
        $this->set('productos', $this->Producto->find('all'));
        $this->layout = 'ajax';
    }

    public function index() {
        if (!empty($this->data)) {
            $this->Producto->create();
            if ($this->Producto->save($this->data)) {
                if ($this->RequestHandler->isAjax()) {
                    $this->set('productos', 'ajax');
                    $this->layout = 'ajax';
                }
            }
        }
    }

    public function view($id = null) {
        $this->Producto->id = $id;
        $this->set('productos', $this->Producto->read());
    }

    function edit($id = null) {
        $this->Producto->id = $id;
        if ($this->Producto->save($this->request->data)) {
            $this->set('productos', '1');
            $this->layout = 'ajax';
        }
    }

    function delete() {
        $id=$_POST['Id'];
        if ($this->Producto->delete($id)) {
            $this->set('productos', '1');
            $this->layout = 'ajax';
        }
    }

}

?>
